<?php

/**
* alltosun.com 积分接口 index.php
* ============================================================================
* 版权所有 (C) 2009-2014 北京互动阳光科技有限公司，并保留所有权利。
* 网站地址: http://www.alltosun.com
* ----------------------------------------------------------------------------
* 许可声明: 这是一个开源程序，未经许可不得将本软件的整体或任何部分用于商业用途及再发布。
* ============================================================================
* $Author: 高昂 (gaoa@alltosun.com) $
* $Date: 2015-7-3 上午9:42:33 $
* $Id$
*/

class Action
{
    private $token = '';
    private $user_id = 0;
    private $user_info = array();
    private $store_id = 0;
    private $order_id = 0;
    private $score = 0;

    public function __construct()
    {
        $this->token = an_request('token', 'post');

        if ($this->token) {
            $user_info = user_helper::get_user_info_by_token($this->token);
            if ($user_info && $user_info['status'] == 1) {
                $this->user_id = $user_info['id'];
                $this->user_info = $user_info;
            }
        }
    }


    /**
    * 获取登录用户的积分列表
    */
    public function get_score_record_list()
    {
        // 验证接口
        $page_no = Request::getParam('page_no', 1);
        $store_id = Request::Post('store_id', 0);
        
        $check_params = array(
        	    'page_no' => $page_no,
                'store_id' => $store_id
            );
        
        $api_stat_id = api_helper::check_sign($check_params, 1);

        if (!$this->user_id) {
            api_helper::return_data(1, '请先登录');
        }
        
        // 获取店长id
        $store_user_id = store_helper::get_user_id_by_store_id($store_id);

        $score_record_list = _widget('score_record')->get_score_record_list($store_user_id, $page_no);

        if ($score_record_list) {
            api_helper::return_data(0, 'success', $score_record_list);
        } else {
            api_helper::return_data(1, '暂无积分记录');
        }

    }
    
    /**
     * 获取积分规则的接口
     */
    public function get_score_rule_list()
    {
        // 验证接口
        $api_stat_id = api_helper::check_sign(array());
        
        if (!$this->user_id) {
            api_helper::return_data(1, '请先登录');
        }
        
        $score_rule_list = _widget('score_rule')->get_score_rule_list();
        
        if ($score_rule_list) {
        	api_helper::return_data(0, 'success', $score_rule_list, $api_stat_id);
        } else {
            api_helper::return_data(1, '没有积分规则!');
        }
    }
    
    /**
     * 对外的增加积分的接口
     * @param $store_id,店铺的id
     * @param $order_id,订单的id
     * @param $score 积分数,如果需要减积分,直接传负数即可
     * @param $res_id 积分类型id(管理员添加是1,进货是2,发货是3,违规是4,用户初始添加积分是5,核销是6,默认是进货2)
     * @param $admin_id, 执行添加积分的用户id(默认是管理员id=1)
     */
    /* public function change_score()
    {
        // 验证接口
        $api_stat_id = api_helper::check_sign(array());
        
        //接受参数
        $store_id = Request::getParam('store_id', 0);
        $order_id = Request::getParam('order_id', 0);
        $score    = Request::getParam('score', 0);
        $res_id   = Request::getParam('res_id', 2);
        $admin_id = Request::getParam('admin_id', 1);
        
        if (!$this->user_id) {
            api_helper::return_data(1, '用户id未知');
        }
        if (!$order_id) {
            api_helper::return_data(1, '订单id未知');
        }
        if (!$store_id) {
            api_helper::return_data(1, '店铺id未知');
        }
        if (!$score || !is_numeric($score)) {
            api_helper::return_data(1, '没有传入积分数,或积分格式错误');
        }
        
        //验证当前登陆用户和店铺是否对应
        $res = store_helper::get_user_store($this->user_id);
        if (!$res) {
            api_helper::return_data(1, '用户和店铺不对应');
        }
        
        //创建数据
        $score_record['user_id']  = $this->user_id;
//         $score_record['store_id'] = $store_id;
        $score_record['order_id'] = $order_id;
        $score_record['score']    = $score;
        $score_record['admin_id'] = $admin_id;
        $score_record['res_id']   = $res_id;
        $score_record['add_time'] = date('Y-m-d H:i:s', time());
        
        $record_id = _model('score_record')->create($score_record);
        
        if ($record_id) {
            api_helper::return_data(0, 'success');
        } else {
            api_helper::return_data(1, '记录写入错误');
        }
        
    } */

    /**
     * 积分换算
     * @return array [description]
     */
    public function score_format()
    {
        $store_id = Request::getParam('store_id', 0);

        $box_num = Request::getParam('box_num', 0);

        $price = Request::getParam('price', '');

        $sign_param = array(
                'store_id' => $store_id,
                'box_num'  => $box_num,
                'price'    => $price
            );

        // 验证接口
        $api_stat_id = api_helper::check_sign($sign_param);
        if (!$this->user_id) {
            api_helper::return_data(1, '用户id未知');
        }
        if (!$box_num) {
            api_helper::return_data(1, '订单箱数未知');
        }
        if (!$store_id) {
            api_helper::return_data(1, '店铺id未知');
        }

        $return_data = _widget('score_record')->format_store_order_score($store_id, $box_num, $price);
        api_helper::return_data(0, 'success', $return_data, $api_stat_id);

    }
    
    
    /*
     * 对外的增加积分的接口
     * @param $store_id,店铺的id
     * @param $order_id,订单的id
     * @param $score 积分数,如果需要减积分,直接传负数即可
     * @param $res_id 积分类型id(进货是2,发货是3,默认是进货)
     * @param $admin_id, 执行添加积分的用户id(默认是管理员id=1)
     */
 /*    public function change_score($store_id, $order_id, $score, $res_id = 2, $admin_id = 1)
    {
        // 验证接口
        $api_stat_id = api_helper::check_sign(array());
        
        if (!$this->user_id) {
            api_helper::return_data(1, '用户id未知');
        }
        if (!order_id) {
        	api_helper::return_data(1, '订单id未知');
        }
        if (!store_id) {
        	api_helper::return_data(1, '店铺id未知');
        }
        if (!$score || !is_numeric($score)) {
        	api_helper::return_data(1, '没有传入积分数,或积分格式错误');
        }
        
        //验证当前登陆用户和店铺是否对应
        $res = store_helper::get_user_store($this->user_id);
        if (!$res) {
        	api_helper::return_data(1, '用户和店铺不对应');;
        }
        
        //创建数据
        $score_record['user_id']  = $user_id;
        $score_record['store_id'] = $store_id;
        $score_record['order_id'] = $order_id;
        $score_record['score']    = $score;
        $score_record['admin_id'] = $admin_id; 
        $score_record['res_id']   = $res_id;
        
        $record_id = _model('score_record')->create($score_record);
        
        if ($record_id) {
            api_helper::return_data(0, 'success');
        } else {
            api_helper::return_data(1, '记录写入错误');
        }
    }
 */

   
}
?>